//
// Created by guanj on 16-3-15.
//

#ifndef ALLUTILS_RC4_H
#define ALLUTILS_RC4_H

#ifdef __cplusplus
extern "C" {
#endif

#include <stdint.h>

/**
 * rc4 密钥初始化算法
 * @key         加密密钥
 * @key_size    密钥长度
 * @s_box       结果密钥
 * @box_size    结果密钥大小
 * return s_box
 */
uint8_t *rc4_init(const uint8_t *key, int32_t key_size, uint8_t *s_box, int32_t box_size);

/**
 * rc4 伪随机子密码生成
 * @data      需要加密的串
 * @size        data长度
 * @s_box         加密密钥
 * @box_size    密钥长度
 * return 返回data
 */
uint8_t *rc4_crypt(uint8_t *data, int32_t size, uint8_t *s_box, int32_t box_size);

#ifdef __cplusplus
}
#endif

#endif //ALLUTILS_RC4_H
